package edu.ncsu.csc.ip.common;

import java.net.Socket;

/**
 * Class <code></code>
 * 
 * 
 * 
 * @author Moin Ayazifar <mayazif@ncsu.edu>
 * @author Steven Elliott <sdelliot@ncsu.edu>
 * 
 */

public interface Protocol {

	public static final String PROTOCOL_VERSION = "P2P-DI/1.0";
	
	public static final String HEADER_SPLITTER = "\n";
	
	public static final Integer MAX_TTL = 7200;
	
	

	public enum State {
		IDLE, SENT_REGISTERED, SENT_PCQUERY, SENT_LEAVE, SENT_KEAPALIVE, SENT_RFCQUERY, SENT_GETRFC
	}

	public String parseCommand(String command);

	public String parseMessage(String message);

	public Socket getSocket();

	public void setSocket(Socket socket);

	public boolean isRFCCommand(String command);
	
	public boolean isFileTransferCommand(String command);

}
